如何不再害怕 Vim【译】
vim的最常见的命令及其使用方式,一起学习命令背后的思想!
如果你曾经使用过 Vim,可能觉得编辑速度没有 GUI编辑器那么快。但是,一旦你深入学习,回报是指数成长的–你将能更高效的编写代码。我们大部分时间都用于解决设计问题,而不是实际编码问题。因此,快速编码似乎是最后需要关注的事情。当然,这不是写这个文章的主要原因。主要原因是:在用SSH连接的机器上不存在GUI编辑器,当你访问终端并想要编辑文件该怎么做呢?–你有 2 个选项:
放弃,并关闭vim
掌握vim
我使用不同的方法介绍vim:我汇总了我在日常生活中作为软件开发人员使用的vim,以及用于记忆内容的助记符。这包含几乎所有你需要日常编辑的方法。
基础知识
跟着我一起学习命令背后的思想!
模式
Vim 有 2 种模式:
正常(命令模式)
插入(编辑模式)
打开 Vim 时,您将在正常模式下启动。按 ESC
键可以回到正常模式。在正常模式下,使用:
命令是无限制的。
进入插入模式有很多方法。最直接的是使用 i
命令。i
用于插入。在正常模式下,按 i
,将进入插入模式。现在,你输入的任何内容都会显示在编辑器中。
怎么理解这两个模式:由于没有 GUI,就没有鼠标单击的概念,没有菜单可供选择,没有右键单击。因此,您需要一种方法来在唯一的输入源键盘上实现这个。可以将”正常(命令)”模式视为菜单栏和鼠标,而插入模式类似于GUI编辑器里的编写模式(输入的内容显示在屏幕上)。
单词
对 Vim 来说,单词(words)的含义几乎和我们认识的相同 – 一组由空格或特殊字符分隔的字符。命令为 w
。
命令解析
Vim 中的命令遵循一组规则。了解这一点有助于将每个命令放入特定的命令桶中,从而构建一个更好的心理模型。
命令如下所示:
[操作] <数字> [移动]
操作是你想做的。
数字是希望执行该操作的次数,数字默认为一次。
移动是该操作的范围。
例如,我们要删除接下来的3个字,从光标开始。在这里,操作是删除的,数字是3,移动是一个单词。删除的命令操作为 d
。因此,我们得到的最终命令为:d3w
–删除接下来的 3 个单词。
移动可以在不执行操作的情况下使用,该操作默认为导航。因此,在命令模式下键入 w
会将光标向后移动一个单词。
我们现在完全有能力开始学习命令本身(以及一系列的移动)。
有用的命令
如何关闭 Vim
首先,我们不想在没有退出计划的情况下被困在Vim的土地上。我们要有退出策略。
:q
退出:q!
强制退出:wq
保存和退出
操作命令
d
: 删除i
: 插入p
: 粘贴y
: 复制 x
: 切割u
: 撤消di
: 删除包含, yi
: 复制包含v
: 视觉 /选择/
: 搜索%
: 括号匹配, 开发人员欢欣鼓舞!:s
: 替代!
由于有些操作非常频繁,vim 的开发人员为他们创建了一个新的写法 – 省略了添加移动的需要。重复操作以应用于整行。例如:
删除当前行:dd
复制当前行:yy
是不是很简洁?
移动命令
移动与我们所看到的操作一样,可用移动会随着操作而改变。然而,有些移动是相当统一的。
w
: 下一个单词的开头e
: 当前单词的结尾b
: 前一个单词的开头方向键 / [h,j,k,l]
: 方向位移。h,j,k,l
是方向键的替代品,你可不必将使用键盘的方向箭。$
: 行尾0
: 行开始G
: 文件结尾nG
: 跳转到行号 n)
:下一句首}
:下一段首
下面这个图有助于更好地可视化:
常见的命令
有了这些操作命令和移动命令,我们可以在 Vim 中创建大多数基本命令。下面8个是日常用的命令。想想解决方法?
删除接下来的 3 行(包括当前行)
复制当前单词(光标位于单词的开头)
复制当前单词(它有特殊字符,光标位于单词的中间)
向下移动 10 行
删除大括号内的所有内容
向上移动 2 段
粘贴以前选定的文本 5 次。
编辑光标存在的位置:“I can Vim now!”
…
…
…
…
…
…
下面是一种解决方案:
d3j
yw
yiW
10j
di}
2{
5p
i
,进入插入模式,然后输入I can Vim now!
好吧,你做到了!恭喜你,这足够你探索Vim。本教程结束了。祝你好运。如果有人问你关于Vim,你可以做的比这个更好。向他们解释,或带他们阅读这篇文章 ;)
为你推荐